package com.legrand.www.module.core.util;

/**
 * 使用 SHA1 方法进行加密<br/>
 * SHA1方法加密是不可逆的，不能解密，要想解密就必须使用暴力解密<br/>
 * <p/>
 * 方法中的 res 参数：原始的数据<br/>
 * 方法中的 key 参数：密钥，可以随便写<br/>
 */
public class SHA1Util {
    public static final String SHA1 = "SHA1";
    public static final String HmacSHA1 = "HmacSHA1";
    private static SHA1Util instance;

    private SHA1Util() {
    }

    /**单例*/
    public static SHA1Util getInstance() {
        if (instance == null) {
            synchronized (SHA1Util.class) {
                if (instance == null) {
                    instance = new SHA1Util();
                }
            }
        }
        return instance;
    }

    /**
     * 使用 SHA1 方法加密（无密码）
     */
    public static String encode(String res) {
        return Cryption.encode(res, SHA1);
    }

    /**
     * 使用 SHA1 方法加密（可以设密码）
     */
    public static String encode(String res, String key) {
        return Cryption.encode(res, key, HmacSHA1);
    }
}
